/**
 * 栈
 * push:在头部添加一个值
 * top:头部的值
 * pop：头部删除一个值
 * print：答应
 * empyt：是否为空
 * size：长度
 * clear：清空
*/
class Stack {
    constructor() {
        this.arr = [];
        this.tail = -1; // 这里的tail完全可以使用this.arr的length属性。但是这里是为了模拟更像一个Stack
    }
    push(val) {
        this.arr.push(val)
        this.tail++;
        return;
    }
    top() {
        return this.arr[this.tail]
    }
    pop() {
        if (this.empty()) return;
        --this.tail;
        this.arr.pop()
    }
    print() {
        for(let i = 0;i<this.tail;i++) {
            console.info(this.arr[this.tail])
        }
    }
    empty() {
        return this.tail === -1;
    }
    size() {
        return this.tail;
    }
    clear() {
        this.tail = -1;
        this.arr = [];
    }
}